package com.thinkgem.jeesite.modules.sys.security;

import com.thinkgem.jeesite.modules.sys.entity.User;
import com.thinkgem.jeesite.modules.sys.utils.UserUtils;

import java.io.Serializable;


/**
* <p>Title: Principal</p>
* <p>Description: 用户登录模型，可标识用户类型和是否手机登录</p>
* <p>Company: www.huanzhidadi.xin</p>
* @author wanghui
* @date 2017年12月3日
*/
public class Principal implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private String id; // 编号
	private String loginName; // 登录名
	private String name; // 姓名
	private boolean mobileLogin; // 是否手机登录
	private int logintype;//用户类型	1fantasy用户	2jeesite用户
	
//	private Map<String, Object> cacheMap;

	/**
	* <p>Title: jeesite用户登录模型</p>
	* <p>Description: 用于jeesite本身用户登录使用</p>
	* @param user
	* @param logintype
	* @param mobileLogin
	*/
	public Principal(User user, int logintype, boolean mobileLogin) {
		this.id = user.getId();
		this.loginName = user.getLoginName();
		this.name = user.getName();
		this.logintype = logintype;
		this.mobileLogin = mobileLogin;
	}


	/**
	* <p>Title: fantasy用户登录模型</p>
	* <p>Description: 用于fantasy玩家登录使用</p>
	* @param name
	* @param id
	* @param loginName
	* @param logintype
	* @param mobileLogin
	*/
	public Principal(String name, String id, String loginName, int logintype, boolean mobileLogin) {
		this.loginName = loginName;
		this.name = name;
		this.id = id;
		this.logintype = logintype;
		this.mobileLogin = mobileLogin;
	}
	
	
	public String getId() {
		return id;
	}

	public String getLoginName() {
		return loginName;
	}

	public String getName() {
		return name;
	}

	public boolean isMobileLogin() {
		return mobileLogin;
	}

//	@JsonIgnore
//	public Map<String, Object> getCacheMap() {
//		if (cacheMap==null){
//			cacheMap = new HashMap<String, Object>();
//		}
//		return cacheMap;
//	}

	/**
	 * 获取SESSIONID
	 */
	public String getSessionid() {
		try{
			return (String) UserUtils.getSession().getId();
		}catch (Exception e) {
			return "";
		}
	}
	
	@Override
	public String toString() {
		return id;
	}

	public int getLogintype() {
		return logintype;
	}

	public void setLogintype(int logintype) {
		this.logintype = logintype;
	}
}
